package com.ayz.gateway.core.core.Netty;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @ClassName NettyServerConfig
 * @Description TODO: Netty服务端的配置
 * @Author 快乐的星球
 * @Date 2023/4/6 22:48
 * @Version 1.0
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NettyServerConfig {
    /**
     * 服务端监听的端口号
     * 默认是8080
     */
    private int listenPort=8080;
    /**
     * Netty eventLoopGroup的Boss组默认的线程数为 1
     */
    private int eventLoopGroupBossThreads=1;

    /**
     * Netty eventLoopGroup的Worker组的默认线程数为 3
     */
    private int eventLoopGroupWorkerThreads=3;

    /**
     * 有多少个排队的未被Accept的客户端Socket套接字
     * 会影响到当前Socket套接字的全连接队列和半连接队列的大小
     */
    private int nioSoBackLog=1024;

    /**
     * 当处于Linux操作系统的时候 是否使用Epoll多路复用器
     * 默认是true
     */
    private boolean useEpollWhenUseLinux=true;

    /**
     * 服务端并发处理 编解码 安全校验 按请求码进行分发功能的并发线程组个数
     */
    private int serverWorkerThreads=4;

    /**
     * 连接的最大空闲时间为120S
     */
    private int serverChannelMaxIdleTimeSeconds=120;
}
